/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: wx
 * Date: 2024-03-14
 * Time: 12:56
 */
public class UdpDemo {
    public static void main(String[] args) {

    }

}





/**
 * 操作系统提供给我们进行网络编程的 API 也叫 "socket API"(网络编程套接字)
 * ------------------------------------------------------------------------------
 * UDP socket api 的使用
 * java 把系统原生 API 封装了
 * UDP socket 提供的核心的类,主要有两个类:
 *
 * 1.DatagramSocket: 是 UPD Socket, 用来发送和接收 UDP 数据报
 * 操作系统中,有一类文件叫 Socket 文件(抽象表示了 "网卡" 这样的硬件设备) , 普通文件和目录文件 在硬盘上
 *                             进行网络通信最核心的硬件设备"网卡"
 *                             网卡发送数据,就是写 socket文件
 *                             网卡接收数据,就是读 socket文件
 *    这个类对 socket文件进行读写,也就是借助网卡发送数据
 *
 * 2.DatagramPacket  (表示接受的文件)
 * UDP面向数据报,每次发送接收数据的基本单位,就是一个 UDP数据报
 * 表示了一个 UDP数据报
 * 主要是一些构造方法
 *  DatagramPacket(byte[] buf,int length)
 *   DatagramPacket(byte[] buf, int offset, int length,
 *                  SocketAddress address)
 *
 * 网络编程用到的API不复杂,需要理解网络编程的基本流程
 * 一个典型的服务器要做那些事情,一个典型的客户端要做那些事情
 *
 *
 * 回显服务器,网络编程中,最简单的程序,网络编程的 hello word
 * 特点: 客户端发什么请求,服务器返回什么响应 (没有业务逻辑)
 *
 * 服务器就是接收客户端的请求,返回响应,给一个请求,返回什么响应?
 * 根据实际的业务场景来的
 *
 * 1.socket api 使用
 * 2.典型的客户端服务器的使用
 */